commandの解釈 | scrapVim
https://gyazo.com/155ceddc94c89ef43270f3e8f078dfe4
まずはminimumに、ここだけ作ってみる
https://gyazo.com/6f283ec26cbb2863d8340688291a7cb4
状態を持つ必要があるから、classで表現したほうが良いなあ
状態
count
繰り返しの数を指定している
[1-9]で開始
続いて[0-9]が入力された場合は、状態を変えない
operatorでもmotionでもないものが入力されたら状態をcancelにする
motion
commandを確定する
operator
iaが入力されたらtext object へ移行
iaでもmotionでもないものが入力されたらcalcelする
外部から文字を一つづつ入力していく
それぞれの状態に該当するcommandを予め定義しておく
code:js
const operators = {
'd': 'delete',
'c': 'change',
'y': 'yank',
}
keymapのcustomizeはこの段階ではまだ考えない
最終的に出来上がるcommand例
code:json
{
"operator": {
"repeat": 4,
"type": "delete",
"motion": {
"repeat": 2,
"type": "h",
}
}
無視するもの
iIaAなどのcount
code:commandParser.js
class CommandState